In a digital transmission network, data from a large number of users are serially transmitted from one network node to another network node, up to their respective final destinations.
Due to the evolution of networks toward more and more complex mixtures of sub-networks with heterogeneous architectures, it is clear that there will be a future requirement to support distributed computing applications across high speed backbones that may be carrying LAN traffic, voice, video and other traffic among channel-attached hosts and work stations. Perhaps the fundamental challenge for high speed networking is to minimize the processing time within each node in the network.
Packet switching is now commonly used to accommodate the bursty, multiprocess communication found in distributed computing environments. To accomplish this, packets carrying bursty data traffic can be assigned a low non-real-time priority, while packets carrying voice and video traffic can be assigned a high, real-time priority. A node in a fast packet switching network contains buffers for holding packets waiting for transmission on its communication links. Packets waiting for transmission can be held in buffers managed differently, depending on the priority assigned to the packets.
Several service policies can be adopted in order to transmit packets from different priority queues such as transmission without pre-emption, pre-emption with retransmission or priority with restart. When no pre-emption is used, the packet priority is only examined to determine from which queue to select the next packet for transmission. If a high-priority packet is placed in the queue while a low-priority packet is being transmitted, the high-priority packet must wait until the current transmission is completed. A pre-emption with retransmission service policy means that the node will abort the transmission of a low-priority packet upon the arrival of a high-priority packet and transmit the high-priority packet. Once all high-priority packets have been transmitted, transmission of the pre-empted low-priority packet will be restarted from the beginning of the packet. A pre-emption with restart service policy is similar except that the transmission of the pre-empted low-priority packet is restarted from the point of interruption rather than the beginning.
Both the transmission without pre-emption and the pre-emption with retransmission service policies can be implemented using the existing HDLC MAC-layer protocol. For pre-emption with resume service policy, a modified HDLC MAC-layer protocol is described in EP 0.582.537 wherein three types of specific flags are used to delimit packets for allowing high-priority packets to temporarily pre-empt low-priority packets. But this system requires that the hardware be capable of scanning the incoming bit stream, of recognizing special non-standard flags in addition to the HDLC flags, and of running a protocol to verify a set of rules upon detection of these flags. Clearly, special hardware is necessary for that purpose.
A system described in U.S. Pat. No. 5,557,608 overcomes the above drawback. In this system, an incoming real-time packet is embedded after the block of data of the non-real-time packet being transmitted. This is accomplished by transmitting each packet along with at least a 1-byte trailer which is used to indicate the packet type, whether the current block of non-real-time data is pre-empted or whether the current block of non-real-time data is resumed.
But when the protocol being used between a sender and a receiver is always Internet Protocol (IP), the complex mechanism described in U.S. Pat. No. 5,557,608 is not required. In the latter patent, the protocol used does not take advantage of the fact that all transmitted layer 2 packets start with an IP header as defined by the IP protocol suite. Therefore, a new field needs to be added to transport various indicators between the sender and the receiver.